namespace Asmex.ObjViewer
{
    using System;

    [AttributeUsage(AttributeTargets.Property, AllowMultiple=true, Inherited=true)]
    public class ObjViewerAttribute : Attribute
    {
        private bool _hex;
        private bool _hide;
        private string _name;
        private bool _rename;

        public ObjViewerAttribute()
        {
            this._hide = false;
            this._rename = false;
        }

        public ObjViewerAttribute(bool show)
        {
            this._hide = !show;
            this._rename = false;
        }

        public ObjViewerAttribute(string name)
        {
            this._hide = false;
            this._name = name;
            this._rename = true;
        }

        public bool Hex
        {
            get
            {
                return this._hex;
            }
            set
            {
                this._hex = value;
            }
        }

        public bool Hide
        {
            get
            {
                return this._hide;
            }
            set
            {
                this._hide = value;
            }
        }

        public string Name
        {
            get
            {
                return this._name;
            }
            set
            {
                this._name = value;
            }
        }

        public bool Rename
        {
            get
            {
                return this._rename;
            }
            set
            {
                this._rename = value;
            }
        }
    }
}
